<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of clientes
 *
 * @author Lucas Pinheiro
 */
class clientes extends MY_Controller {
    //put your code here

    /**
     * Construção automatica do metodo. 
     */
    public function __construct() {
        parent::__construct();
        $this->load->model('clientes_model');
        $this->load->model('usuarios_model');
        $this->load->helper('data');
    }

    /**
     * Cadastrar
     *
     * Exibe o formulario de cadastro de cliente.
     *
     * @return	void Exibir a view na tela do computador.
     */
    public function cadastrar() {
        $v_dados = array();
        $v_dados['base_url'] = base_url();
        $this->display($this->parser->parse('clientes_view', $v_dados, true), 'Cadastro de Clientes');
    }

    /**
     * Cadastro
     *
     * Valida as informações do formulario e depois cadastra na base de dados os dados vindo do formulario.
     *
     * @return	void Exibir a view na tela do computador.
     */
    public function cadastro() {
        $this->load->library('form_validation');
        $this->form_validation->set_rules('nome', 'Nome', 'required');
        $this->form_validation->set_rules('cpf_cnpj', 'CPF/CNPJ', 'required');
        $this->form_validation->set_rules('rg', 'RG', 'required');
        $this->form_validation->set_rules('cep', 'CEP', 'required');
        $this->form_validation->set_rules('logradouro', 'Logradouro', 'required');
        $this->form_validation->set_rules('numero', 'Número', 'required');
        $this->form_validation->set_rules('bairro', 'Bairro', 'required');
        $this->form_validation->set_rules('cidade', 'Cidade', 'required');
        $this->form_validation->set_rules('estado', 'Estado', 'required');
        $this->form_validation->set_rules('email', 'E-mail', 'required');
        $this->form_validation->set_rules('senha', 'Senha', 'required');

        if ($this->form_validation->run() == FALSE) {
            $this->display('Seguintes erros foram localizados.<br>' . validation_errors(), 'Cadastro de Clientes');
        } else {

            $b_consultar_cliente = $this->clientes_model->get('cpf_cnpj', limpa_string($this->input->post('cpf_cnpj')));
            if ($b_consultar_cliente == NULL) {
                $b_consultar_cliente = $this->usuarios_model->get('email', $this->input->post('email'));
            }

            if ($b_consultar_cliente == NULL) {
                $p_dados = array();
                $p_dados['nome'] = $this->input->post('nome');
                $p_dados['cpf_cnpj'] = limpa_string($this->input->post('cpf_cnpj'));
                $p_dados['rg'] = $this->input->post('rg');
                $p_dados['cep'] = limpa_string($this->input->post('cep'));
                $p_dados['logradouro'] = $this->input->post('logradouro');
                $p_dados['numero'] = $this->input->post('numero');
                $p_dados['complemento'] = $this->input->post('complemento');
                $p_dados['bairro'] = $this->input->post('bairro');
                $p_dados['cidade'] = $this->input->post('cidade');
                $p_dados['estado'] = $this->input->post('estado');

                $id_clientes = $this->clientes_model->cadastrar($p_dados);

                $p_dados = array();
                $p_dados['id_clientes'] = $id_clientes;
                $p_dados['email'] = $this->input->post('email');
                $p_dados['senha'] = md5($this->input->post('senha'));
                $this->usuarios_model->cadastrar($p_dados);

                $this->display('Cliente cadastrado com sucesso.', 'Cadastro de Clientes');
            } else {
                $this->display('Já existe cliente com o CPF/CNPJ ou E-mail informado no sistema.', 'Cadastro de Clientes');
            }
        }
    }

    /**
     * Login
     *
     * Exibir o formulario de login do sistema.
     *
     * @return	void Exibir a view na tela do computador.
     */
    function login() {
        $v_dados = array();
        $v_dados['base_url'] = base_url();
        $this->display($this->parser->parse('login_view', $v_dados, true), 'Autenticação de usuários');
    }

    /**
     * Logar
     *
     * Valida as informações vinda do formulario e caso esteja correta efetua o login
     *
     * @return	void Exibir a view na tela do computador.
     */
    function logar() {
        $this->load->library('form_validation');
        $this->form_validation->set_rules('email', 'E-mail', 'required');
        $this->form_validation->set_rules('senha', 'Senha', 'required');

        if ($this->form_validation->run() == FALSE) {
            $this->display('Seguintes erros foram localizados.<br>' . validation_errors(), 'Autenticação de usuários');
        } else {
            $b_consultar = $this->usuarios_model->logar($this->input->post('email'), $this->input->post('senha'));
            if ($b_consultar != NULL) {
                foreach ($b_consultar as $key => $value) {
                    $this->session->set_userdata($key, $value);
                }
                $this->display('Login realizado com sucesso.', 'Autenticação de usuários');
            } else {
                $this->display('E-mail e senha informados invalidos.', 'Autenticação de usuários');
            }
        }
    }

}